[M5Stack Core2 for AWS] Core2 for AWS IoT EduKit BSPを使用してジャイロセンサーを操作してみました
1 はじめに
IoT事業部の平内(SIN)です。
M5Stack Core2 for AWSを使うために、ここまで、PlatformIOで新規プロジェクトを作成し、Core2 for AWS IoT EduKit BSPの動作を色々試してみました。
Visual Studio Code + PlatformIO 環境で M5Stack Core2 for AWS でHello Worldしてみました
[M5Stack Core2 for AWS] Core2 for AWS IoT EduKit BSPを使用してLEDを光らせてみました
[M5Stack Core2 for AWS] Core2 for AWS IoT EduKit BSPを使用してディスプレイに表示してみました
[M5Stack Core2 for AWS] Core2 for AWS IoT EduKit BSPを使用して仮想ボタンの動作を確認してみました
[M5Stack Core2 for AWS] LVCLを使用してディスプレイ上のボタンの動作を確認してみました
[M5Stack Core2 for AWS] Core2 for AWS IoT EduKit BSPを使用して電源を操作してみました
[M5Stack Core2 for AWS] Core2 for AWS IoT EduKit BSPを使用してスピーカーを操作してみました
[M5Stack Core2 for AWS] Core2 for AWS IoT EduKit BSPを使用して静電容量式タッチパネルを操作してみました
BSPでは、ジャイロセンサーや、温度センサーを制御するライブラリが含まれています。
最初に、動作しているサンプルです。 M5Stackの傾きに合わせて、画面のバーの長さを変えてみました。
2 MPU6886
MPU6886ライブラリは、6軸慣性測定ユニット(IMU)と温度センサーを制御する機能を提供します。
MPU6886(6軸 IMUユニット)は、I2Cで接続されます。
https://edukit.workshop.aws/en/api-reference/mpu6886.html
ライブラリでは、下記のメソッドが公開されています。
- MPU6886_Init(初期化)
- MPU6886_SetGyroFSR(ジャイロスコープのスケール範囲を設定)
- MPU6886_GetGyroRes(ジャイロスコープの解像度を取得)
- MPU6886_GetGyroAdc(ジャイロスコープの測定値を取得「16bi ADC」)
- MPU6886_GetGyroData(ジャイロスコープの測定値を取得)
- MPU6886_SetAccelFSR(加速度計のスケール範囲を設定)
- MPU6886_GetAccRes(加速度計の解像度を取得)
- MPU6886_GetAccelAdc (加速度計の測定値を取得「16bi ADC」)
- MPU6886_GetAccelData(加速度計の測定値を取得)
- MPU6886_GetTempAdc(温度の取得「16bi ADC」)
- MPU6886_GetTempData(温度の取得)
3 コード
試してみたコードは、以下のとおりです。 ジャイロセンサーで取得したデータを画面上にバーで表示し、500msごとに更新しています。
#include "freertos/FreeRTOS.h" #include "freertos/task.h" #include "esp_log.h" #include "core2forAWS.h" static const char *TAG = "SAMPLE001"; // Bar生成 lv_obj_t * create_bar(int y) { lv_obj_t * bar = lv_bar_create(lv_scr_act(), NULL); lv_obj_set_size(bar, 200, 20); lv_bar_set_range(bar, 0, 100); lv_obj_align(bar, NULL, LV_ALIGN_CENTER, 0, y); return bar; } // Barへの値設定 void set_value(lv_obj_t * bar, float value) { value += 1; value *= 50; lv_bar_set_value(bar, (int)value, LV_ANIM_OFF); } static void accel_task(void* pvParameters){ lv_obj_t * bar_x = create_bar(-40); lv_obj_t * bar_y = create_bar(0); lv_obj_t * bar_z = create_bar(40); float accel_x = 0.00; float accel_y = 0.00; float accel_z = 0.00; for(;;){ MPU6886_GetAccelData(&accel_x, &accel_y, &accel_z); ESP_LOGI(TAG, "X:%.2f Y:%.2f Z:%.2f", accel_x, accel_y, accel_z); set_value(bar_x, accel_x); set_value(bar_y, accel_y); set_value(bar_z, accel_z); vTaskDelay(pdMS_TO_TICKS(500)); } vTaskDelete(NULL); } void app_main(void){ Core2ForAWS_Init(); Core2ForAWS_Display_SetBrightness(80); xTaskCreate(accel_task, "accelerometerTask", configMINIMAL_STACK_SIZE * 3, NULL, 1, NULL); }
4 最後に
今回は、ジャイロセンサーを制御するライブラリについて確認してみました。 もう少しで、BSPで提供されるライブラリを一通り確認できそうです。
5 参考リンク
Visual Studio Code + PlatformIO 環境で M5Stack Core2 for AWS でHello Worldしてみました
[M5Stack Core2 for AWS] Core2 for AWS IoT EduKit BSPを使用してLEDを光らせてみました
[M5Stack Core2 for AWS] Core2 for AWS IoT EduKit BSPを使用してディスプレイに表示してみました
[M5Stack Core2 for AWS] Core2 for AWS IoT EduKit BSPを使用して仮想ボタンの動作を確認してみました
[M5Stack Core2 for AWS] LVCLを使用してディスプレイ上のボタンの動作を確認してみました
[M5Stack Core2 for AWS] Core2 for AWS IoT EduKit BSPを使用して電源を操作してみました
[M5Stack Core2 for AWS] Core2 for AWS IoT EduKit BSPを使用してスピーカーを操作してみました
[M5Stack Core2 for AWS] Core2 for AWS IoT EduKit BSPを使用して静電容量式タッチパネルを操作してみました
[M5Stack Core2 for AWS] Core2 for AWS IoT EduKit BSPを使用してジャイロセンサーを操作してみました
[M5Stack Core2 for AWS] PlatformIO を使用して、ArduinoでHello Worldしてみました
[M5Stack Core2 for AWS] ArduinoでLED (Adafruit NeoPixel フルカラーLED) を点灯してみました
[M5Stack Core2 for AWS] Arduinoで仮想ボタンを作成してみました
[M5Stack Core2 for AWS] ArduinoでMQTT接続してみました
[M5Stack Core2 for AWS] Arduinoでオーディオファイルを再生してみました
[M5Stack Core2 for AWS] Arduinoでマイクの利用方法を確認してみました
[M5Stack Core2 for AWS] ArduinoでGroveポートのGPIOを使用しててみました